1. Field of the Invention
The present invention relates to a multi-application type IC card having a plurality of functions including credit card and electronic money functions.
2. Description of the Related Art
An IC card is a plastic card in which an LSI chip with a built-in CPU and memory (such as ROM or RAM) is embedded. Because an IC card can ensure higher security and store a greater volume of data than a conventional magnetic card, a single card can be used to implement a plurality of functions including credit card and electronic money functions. An IC card communicates with an IC card terminal (hereafter, referred to as an external terminal). Based on commands from an external terminal, the CPU within the LSI chip executes application programs (including the operating system) that are stored in memory to read and write data files that are stored in memory.
FIGS. 8(a) and 8(b) show a diagram explaining an IC card terminal (external terminal). FIG. 8(a) is an external view of the external terminal, and FIG. 8(b) is a block diagram. Multi-application type IC card 1 contains built-in LSI chip 2, which supports a plurality of functions including credit card and electronic money functions. LSI chip 2 stores application programs corresponding to each of the functions. External terminal 10, which is a handy-type terminal as shown in FIG. 8(a), for example, comprises an input unit 14 for entering information such as an amount of money or password, a display unit 15 using an LCD or other type of display, and an IC card insertion slot, which is not illustrated. In addition, external terminal 10 has a built-in reader/writer 11 for reading data from and writing data to IC card 1, an IFD (interface device) 12 for controlling communications with IC card 1, and a microcomputer 13, as shown in FIG. 8(b). Microcomputer 13 comprises memory for storing processing programs corresponding to the programs that are stored in the IC card, and a processor part (CPU) for executing these processing programs to communicate with the IC card.
FIG. 9 is a diagram showing an example of a file structure that is stored on an IC card. The file structure in FIG. 9 is called a file system type file structure. In FIG. 9, files are arranged in a hierarchical structure comprising an MF (master file) at the highest level with subordinate DFs (dedicated files) and/or EFs (elementary files) below it. At least one EF must be subordinate to a DF, and other separate DFs may also be subordinate. An EF is a lowest-level file in which data having a binary structure or record structure is stored.
FIG. 10 is a diagram showing a configuration example for program communications between a file system type IC card and an external terminal. IC card 1 contains files shown in FIG. 9 and an IC card OS (operating system). Processing program R1 of external terminal 10 communicates with the IC card OS via an IFD (interface device) driver for controlling communications with the IC card. The IC card OS processes commands from processing program R1, accesses files that are selected according to those commands, and responds to the external terminal.
For example, to read file EF1-1-1 in FIG. 9, processing program R1 of the external terminal sequentially sends the commands shown below to the IC card OS (operating system).
(1) DF1 selection command
(2) DF1-1 selection command
(3) EF1-1-1 selection command
(4) File read command
The IC card OS selects file EF1-1-1 according to the commands in (1), (2), and (3) above, reads the data in selected file EF1-1-1 according to the command in (4) above, and sends that data to the external terminal.
FIG. 11 is a diagram showing another example of a file structure that is stored on an IC card. The file structure in FIG. 11 is called a multi-application type file structure. In FIG. 11, a plurality of DFs are subordinate to an MF, and each DF contains an application program that corresponds to one of a plurality of functions of the IC card and data that corresponds to that application program. In recent years, there has been a steady migration for IC cards to this multi-application type file structure in place of the abovementioned file system type file structure.
For example, in FIG. 11, DF1 contains application program APL1 (code and data) corresponding to function A, DF2 contains application program APL2 (code and data) corresponding to function B, and DF3 contains application program APL3 (code and data) corresponding to function C.
FIG. 12 is a diagram showing a configuration example for program communications between a multi-application type IC card and an external terminal. IC card contains card-side application programs (including data) APL1, APL2, and APL3 corresponding to a plurality of functions A, B, and C, respectively, and an IC card OS (operating system). Processing program R2 of external terminal 20 communicates with each application program via an IFD (interface device) driver for controlling communications with the IC card and also via the IC card OS. Each command from processing program R2 is directed to the corresponding application program by the IC card OS and processed by that application program.
For example, processing program R2 of the external terminal first sends a command for selecting a DF, like the command in (1) above, to the IC card OS (operating system). After the IC card OS selects DF1, processing program R2 of the external terminal communicates with the application program of the selected DF1, not with the IC card OS, by using commands specific to that program. Therefore, a multi-application type IC card does not support the commands in (2) and (3) above for selecting a lower level file and the command in (4) above for reading a file, which are sent to the OS of a file system type IC card.
When a plurality of different IC card file structures like the ones described above coexist, the following problem will occur. As the use of multi-application type IC cards expands in the future, external terminals for relatively old file system type IC cards will not be able to access relatively new multi-application type IC cards. (External terminals for multi-application type IC cards certainly cannot access file system type IC cards.)
For resolving this problem, revising the processing programs of external terminals for file system type IC cards has been considered so as to be compatible with the multi-application type IC cards, however, this approach is expected to be extremely labor intensive and costly.
An object of the present invention is to enable access to an IC card having a prescribed file structure from an external terminal for an IC card having a different file structure.
A further object of the present invention is to provide a kind of multi-application type IC card that can be accessed by an external terminal of a file system type IC card.
To accomplish the abovementioned objects, there are installed, on a multi-application type IC card, emulator programs that can process commands from an external terminal for a file system type IC card. This will enable an external terminal for a file system type IC card to access a multi-application type IC card.
To accomplish the abovementioned objects, an IC card which comprises memory for storing programs corresponding to a first file structure, and a CPU for executing programs stored in the IC card memory, and communicates with a first external terminal that sends commands corresponding to the programs, the IC card being characterized in that: the programs include an emulator program for processing commands from a second external terminal that corresponds to an IC card containing files corresponding to a second file structure; and the CPU executes the emulator program so that the IC card communicates with the second external terminal.
For example, the first file structure is a structure having files that contain application programs subordinate to a master file, and the IC card having the first file structure processes commands from the first external terminal according to an application program of a file that is selected according to a selection command from the first external terminal; and the second file structure is a structure having a hierarchy of files that contain data, and the IC card having the second file structure processes commands from the second external terminal according to the operating system of the relevant IC card.
In this case, for example, the emulator program has information related to a plurality of files constituting the second file structure and to the hierarchical relationships among that plurality of files; and the emulator program confirms the hierarchical relationships of files that are sequentially selected according to selection commands from the second external terminal based on the information, and accesses a file that is being selected according to an access command from the external terminal.